/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */

#ifndef __LIB3D_HARD_DIRECTX8_DEPENDENT_H__
#define __LIB3D_HARD_DIRECTX8_DEPENDENT_H__

#include <lib3d/hard/Hardware.h>
#include <NoCopy.h>
#include <list>

namespace liba
{
namespace lib3d
{
namespace hard
{
namespace directx8
{
class Hardware;

class Dependent : private Nocopy
{
public:
	typedef std::list<Dependent *> List;
private:
	List::iterator it;
protected:
	Hardware * hardware;
public:
	Dependent( Hardware * hardware );
	virtual ~Dependent();

	virtual void invalidate()=0;
	virtual void release()=0;
};


} // namespace directx8
} // namespace hard
} // namespace lib3d
} // namespace liba
using namespace liba;

#endif //__LIB3D_HARD_DIRECTX8_DEPENDENT_H__